import request from '@/utils/request'

// 消息相关接口基础路径
const API_PREFIX = '/api/messages'

/**
 * 获取消息列表
 * @param {Object} params 查询参数 {page, limit, type, status}
 * @returns {Promise} 请求结果
 */
export function getMessages(params) {
  return request({
    url: API_PREFIX,
    method: 'get',
    params
  })
}

/**
 * 获取未读消息数量
 * @returns {Promise} 请求结果
 */
export function getUnreadCount() {
  return request({
    url: `${API_PREFIX}/unread/count`,
    method: 'get'
  })
}

/**
 * 获取消息详情
 * @param {string|number} id 消息ID
 * @returns {Promise} 请求结果
 */
export function getMessage(id) {
  return request({
    url: `${API_PREFIX}/${id}`,
    method: 'get'
  })
}

/**
 * 标记消息为已读
 * @param {string|number} id 消息ID
 * @returns {Promise} 请求结果
 */
export function markAsRead(id) {
  return request({
    url: `${API_PREFIX}/${id}/read`,
    method: 'put'
  })
}

/**
 * 批量标记消息为已读
 * @param {Array} ids 消息ID数组
 * @returns {Promise} 请求结果
 */
export function batchMarkAsRead(ids) {
  return request({
    url: `${API_PREFIX}/read/batch`,
    method: 'put',
    data: { ids }
  })
}

/**
 * 标记所有消息为已读
 * @param {string} [type] 消息类型(可选)
 * @returns {Promise} 请求结果
 */
export function markAllAsRead(type) {
  return request({
    url: `${API_PREFIX}/read/all`,
    method: 'put',
    params: type ? { type } : {}
  })
}

/**
 * 删除消息
 * @param {string|number} id 消息ID
 * @returns {Promise} 请求结果
 */
export function deleteMessage(id) {
  return request({
    url: `${API_PREFIX}/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除消息
 * @param {Array} ids 消息ID数组
 * @returns {Promise} 请求结果
 */
export function batchDeleteMessages(ids) {
  return request({
    url: `${API_PREFIX}/batch`,
    method: 'delete',
    data: { ids }
  })
} 